package com.xyb.dao;

import com.xyb.entity.CourseTopic;
import java.util.List;

/**
 * (CourseTopic)表数据库访问层
 *
 * @author makejava
 * @since 2021-10-20 16:49:23
 */
public interface CourseTopicDao {
    /**
     * 【插入单条】
     *
     * @param courseTopic 实例对象
     * @return 影响行数
     */
    int insertCourseTopic(CourseTopic courseTopic);
    
    /**
     * 【删除单条】根据主键 id
     *
     * @param topicId 主键id
     * @return 影响行数
     */
    int deleteCourseTopicByTopicId(Long topicId);

    /**
     * 【更新单条】根据主键 id
     *
     * @param courseTopic 主键id
     * @param courseTopic 更新数据
     * @return 影响行数
     */
    int updateCourseTopicByTopicId(CourseTopic courseTopic);

    /**
     * 【查询单条】根据主键id,查询所有字段
     *
     * @param topicId  主键id
     * @return CourseTopic 对象信息
     */
    CourseTopic selectCourseTopicByTopicId(Long topicId);
    
    
    //****************************** 批量操作 ******************************
    
    /**
     * 【批量插入】根据对象列表
     *
     * @param list 新增对象列表
     * @return 影响行数
     */
    int insertCourseTopicByCourseTopicList(List<CourseTopic> list);
    
    /**
     * 【批量删除】根据主键 id 列表
     *
     * @param list 主键id列表
     * @return 影响行数
     */
    int deleteCourseTopicByTopicIdList(List<Long> list);
    
    /**
     * 【批量更新】根据对象列表,
     *
     * @param list 对象列表
     * @return 影响行数
     */
    int updateCourseTopicByCourseTopicList(List<CourseTopic> list);
    
    /**
     * 【批量查询】根据主键列表,查询所有字段
     *
     * @param list 主键id列表
     * @return List<CourseTopic> 对象列表
     */
    List<CourseTopic> selectCourseTopicListByTopicIdList(List<Long> list);

    List<CourseTopic> selectCourseTopicList();

    List<CourseTopic> selectCourseTopicListByStatus(int status);

    List<CourseTopic> selectCourseTopicAndCourseList();
}